<html>

	<head>
		<title>6.4.1 输出指令#()</title>
		<meta charset="utf-8" />
		<meta name="author" content="jfinal,yaolin" />
		<meta name="Keywords" content="" />
		<link rel="stylesheet" type="text/css" href="../../css/global.css" />
	</head>

	<body>
		<h1>6.4.1 输出指令#()</h1>
		<p>与几乎所有模板引擎不同， JFinal Template Engine 消灭了插值指令这个原本独立的概念， 而是将其当成是所有指令中的一员，仅仅是指令名称省略了而已。 因此， 该指令的定界符与普 通指令一样为小括号，从而不必像其它模板引擎一样引入额外的如大括号般的定界符。
		</p>
		<p>#(…)输出指令的使用极为简单， 只需要为该指令传入前面 6.4 节中介绍的任何表达式即 可，指令会将这些表达式的求值结果进行输出， 特别注意，当表达式的值为 null 时没有任何输 出，更不会报异常。 所以，对于 #(value) 这类输出不需要对 value 进行 null 值判断，如下是代 码示例：
		</p>
		<img src="../../images/templateEngine/6.4.1.1.png" />
		<p>如上图所示，只需要对输出指令传入表达式即可。注意上例中第一行代码 value 参数可以 为 null，而第二行代码中的 object 为 null 时将会报异常，此时需要使用第三行代码中的空合安 全取值调用运算符： object.field??</p>
		<p>此外，注意上图最后一行代码中的输出指令参数为一个逗号表达式，逗号表达式的整体求 值结果为最后一个表达式的值，而输出指令对于 null 值不做输出，所以这行代码相当于是仅仅 调用了 object.method()方法去实现某些操作。</p>
		<p>输 出 指 令 可 以 自 由 定 制 ， 只 需 要 实 现 IOutputDirectiveFactory 接 口 ， 然 后 在 configEngine(Engine me)方法中， 通过 me. setOutputDirectiveFactory(…)切换即可。</p>
	</body>

</html>